package cn.csg.iotplatform.module.system.controller.admin.dvdeviceattachment.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.util.*;
import java.math.BigDecimal;

@Schema(description = "管理后台 - 设备中心共库专用附件新增/修改 Request VO")
@Data
public class DvDeviceAttachmentSaveReqVO {

    @Schema(description = "附件id", requiredMode = Schema.RequiredMode.REQUIRED, example = "15755")
    private String id;

    @Schema(description = "标识id", requiredMode = Schema.RequiredMode.REQUIRED, example = "13485")
    @NotEmpty(message = "标识id不能为空")
    private String flagId;

    @Schema(description = "证书类型", example = "2")
    private String certificatesType;

    @Schema(description = "证书等级")
    private BigDecimal certificatesLevel;

    @Schema(description = "证书编码")
    private String certificatesCode;

    @Schema(description = "附件id", requiredMode = Schema.RequiredMode.REQUIRED, example = "11521")
    @NotEmpty(message = "附件id不能为空")
    private String attachmentId;

    @Schema(description = "创建人id", requiredMode = Schema.RequiredMode.REQUIRED, example = "971")
    @NotEmpty(message = "创建人id不能为空")
    private String creatorId;

    @Schema(description = "创建人名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
    @NotEmpty(message = "创建人名称不能为空")
    private String creatorName;

    @Schema(description = "文件名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
    @NotEmpty(message = "文件名称不能为空")
    private String fileName;

    @Schema(description = "文件类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotEmpty(message = "文件类型不能为空")
    private String fileType;

    @Schema(description = "类别编码")
    private String jobTypeCode;

    @Schema(description = "附件业务id", requiredMode = Schema.RequiredMode.REQUIRED, example = "22184")
    @NotEmpty(message = "附件业务id不能为空")
    private String objectId;

    @Schema(description = "标识区分", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "标识区分不能为空")
    private BigDecimal flag;

    @Schema(description = "局编码")
    private String bureauCode;

    @Schema(description = "乐观锁版本")
    private BigDecimal optimisticLockVersion;

    @Schema(description = "省编码")
    private String provinceCode;

    @Schema(description = "数据来源")
    private String dataFrom;

    @Schema(description = "备注", example = "随便")
    private String remark;

}